home *** CD-ROM | disk | FTP | other *** search
/ ETO Development Tools 1 / ETO Development Tools 1.iso / Essentials / MacApp Documentation / MacApp AppleLink Messages / MacApp.Tech$ 11⁄88-4⁄89 / B-Tree library under < prev    next >
Encoding:
Text File  |  1989-08-21  |  3.2 KB  |  56 lines  |  [TEXT/GEOL]

  1. Interested in b-trees, file handling of variable length records?
  2.  
  3. I was perusing the old macapp tech messages and saw some related to b-tree
  4. libraries. We are in the relatively early stages of implementing a b-tree
  5. package that is based on a unique design. We have two present needs for a
  6. library that can manage variable length records. One is that we are developing
  7. an application for teachers that writes out records with text and graphics
  8. data. Second we are developing an object-oriented framework that supports
  9. persistent objects. Although you can use the resource manager to handle some
  10. persistent objects (e.g., view objects defined in an application), you would
  11. not want to use it to handle a large amount of objects.
  12.  
  13. We purchased and experimented with both Inside Out (Shana Enterprises) and
  14. C-Tree (Faircom). They each have advantages and disadvantages, but neither
  15. would serve our needs well. Inside Out can store data and indexes in a single
  16. file so that your typical Macintosh user would not have to deal with a separate
  17. index (.idx) and data file.  However, it was very slow at storing and
  18. retrieving variable length data. C-Tree on the other hand at much better
  19. performance on this task, but it stores the indexes in a separate from the
  20. data. C-Tree doesn't do everything Inside Out does, but it is a sophisticated
  21. b+-tree implementation with an ISAM interface as well. And it comes with source
  22. and is very portable (it's been ported to just about everything under the sun).
  23. There are also other b-tree packages with source which can be used on the
  24. Macintosh. They are generally advertised in PC programming publications. But
  25. none that we heard about could store the indexes in the same file as the data.
  26.  
  27. We felt that a separate index file in an application targeted to teachers was
  28. unacceptable. This is because someone might rename or move the main data file
  29. in the Finder without doing the same to the .idx file. However, we have seen
  30. one application which will offer to rebuild the index file when it can't find
  31. it anymore. Maybe that's not too bad. However, we still feel it's preferable to
  32. generate one file for your application's documents.
  33.  
  34. So were motivated to develop a b-tree package with the following
  35. characteristics. It would store indexes and data in a single file. It would be
  36. optimized for working with variable length records such as object instances. It
  37. would be optimized for the Macintosh, but written in C so that it could be
  38. ported easily (perhaps with some modules including a 68000 assembler
  39. implementation for the Macintosh). In addition it could secondary indexes (up
  40. to 15) with variable length keys in the same file as well.
  41.  
  42. This is not a product announcement, but we are interested in your feedback. If
  43. the package turns out as nicely as the design seems to indicate we will
  44. definitely consider marketing it as a developer tool. It is somewhat of niche
  45. product because it is not a high-level database library like Inside Out and it
  46. is not a full-featured standard b-tree library like C-Tree. However we think
  47. there may be other Macintosh developers out there with the same needs --- a
  48. simple b-tree library that can store indexes in the same file as data and is
  49. efficient at handling variable length records.
  50.  
  51. Mark Richer
  52. Mountain Lake Software
  53.  
  54.  
  55.  
  56.